package web

import (
	"fmt"
	"ksd-social-api/commons/base/controller"
	"ksd-social-api/modules/special/model/context"
	"ksd-social-api/modules/special/service"
	"ksd-social-api/utils/rdb"
)

type AdminSpecialController struct {
	controller.BaseController
}

var adminSpecialService = service.AdminSpecialService{}

/**
 * @author feige
 * @date 2023-10-08
 * @desc 根据专题id查询明细
 */
func (web *AdminSpecialController) GetDetail() {
	// 1: 获取专题id
	specialId, _ := web.ParseParamUint64("id")
	// 2: 用户id从哪里获取
	userId := web.GetUserId()
	// 3: 开始查询专题的信息
	vo, _ := adminSpecialService.GetSpecialById(specialId, userId, web.GetSystemId())
	web.Ok(vo)
}

/*
*
查询老师信息
*/
func (web *AdminSpecialController) FindSpecials() {
	// 1: 定义一个接受分页信息的上下文
	specialSearchContext := context.SpecialSearchContext{}
	// 2: 开始绑定参数
	web.BindJSON(&specialSearchContext)
	specialSearchContext.SystemId = web.GetSystemId()
	web.Ok(adminSpecialService.FindSpecialListAndPage(specialSearchContext))
}

/*
*
查询老师信息
*/
func (web *AdminSpecialController) UpdateFieldById() {
	// 1: 定义一个接受分页信息的上下文
	specialUpdateContext := context.SpecialUpdateContext{}
	// 2: 开始绑定参数
	web.BindJSON(&specialUpdateContext)
	specialUpdateContext.SystemId = web.GetSystemId()
	pvo, _ := adminSpecialService.GetSpecialByIdNo(specialUpdateContext.Id.Uint64(), specialUpdateContext.SystemId)
	cacheKey := fmt.Sprintf("SYSTEM:SPECIAL:GetUserStudyDetailByPath:%s:%d", pvo.Path, web.GetSystemId())
	rdb.RdbDel(cacheKey)
	web.Ok(adminSpecialService.UpdateFieldById(specialUpdateContext))
}

/*
*
查询老师信息
*/
func (web *AdminSpecialController) SaveUpdateSpecial() {
	// 1: 定义一个接受分页信息的上下文
	specialSaveUpdateVo := context.SpecialSaveUpdateVo{}
	// 2: 开始绑定参数
	web.BindJSON(&specialSaveUpdateVo)
	specialSaveUpdateVo.SystemId = web.GetSystemId()
	specialSaveUpdateVo.SystemName = web.GetSystemName()
	web.Ok(adminSpecialService.SaveUpdateSpecial(specialSaveUpdateVo))
}

/*
*
保存兑换码
*/
func (web *AdminSpecialController) SaveUpdateCodes() {
	// 1: 定义一个接受分页信息的上下文
	specialCodeContext := context.SpecialCodeContext{}
	// 2: 开始绑定参数
	web.BindJSON(&specialCodeContext)
	specialCodeContext.SystemId = web.GetSystemId()
	web.Ok(adminSpecialService.SaveUpdateCode(specialCodeContext))
}

/*
*
查询栏目兑换码信息
*/
func (web *AdminSpecialController) FindCodes() {
	// 1: 定义一个接受分页信息的上下文
	codeSearchContext := context.CodeSearchContext{}
	// 2: 开始绑定参数
	web.BindJSON(&codeSearchContext)
	codeSearchContext.SystemId = web.GetSystemId()
	web.Ok(adminSpecialService.FindCodePage(codeSearchContext))
}

/*
*
查询栏目兑换码信息
*/
func (web *AdminSpecialController) BatchSaveOrders() {
	// 1: 定义一个接受分页信息的上下文
	batchUsersContext := context.BatchUsersContext{}
	// 2: 开始绑定参数
	web.BindJSON(&batchUsersContext)
	batchUsersContext.SystemId = web.GetSystemId()
	batchUsersContext.SystemName = web.GetSystemName()
	web.Ok(adminSpecialService.SaveUserSepcialOrder(batchUsersContext))
}

/*
*
修改状态
*/
func (web *AdminSpecialController) UpdateFieldByCodeId() {
	// 1: 定义一个接受分页信息的上下文
	specialUpdateContext := context.SpecialUpdateContext{}
	// 2: 开始绑定参数
	web.BindJSON(&specialUpdateContext)
	specialUpdateContext.SystemId = web.GetSystemId()
	web.Ok(adminSpecialService.UpdateFieldByCodeId(specialUpdateContext))
}

/**
 * @author feige
 * @date 2023-10-10
 * @version 1.0
 * @desc  根据id删除
 */
func (web *AdminSpecialController) DelById() {
	id, _ := web.ParseParamUint64("id")
	web.Ok(adminSpecialService.DelById(id, web.GetSystemId()))
}

/**
 * @author feige
 * @date 2023-10-10
 * @version 1.0
 * @desc  根据用户id查询用户明细
 */
func (web *AdminSpecialController) DelCodeById() {
	id, _ := web.ParseParamUint64("id")
	web.Ok(adminSpecialService.DelCodeById(id, web.GetSystemId()))
}

/**
 * @author feige
 * @date 2023-10-10
 * @version 1.0
 * @desc  根据用户id查询用户明细
 */
func (web *AdminSpecialController) DelByUserorderId() {
	id, _ := web.ParseParamUint64("id")
	web.Ok(adminSpecialService.DelByUserOrderId(id, web.GetSystemId()))
}

/*
*
复制
*/
func (web *AdminSpecialController) CopyData() {
	id, _ := web.ParseParamUint64("id")
	web.Ok(adminSpecialService.CopyData(id, web.GetSystemId()))
}
